def add_route(app, conditions = {}, defaults = {}, name = nil)
unless conditions.is_a?(Hash)
raise ArgumentError, 'conditions must be a Hash'
end
unless conditions.all? { |method, pattern|
@valid_conditions.include?(method)
}
raise ArgumentError, 'conditions may only include ' +
@valid_conditions.inspect
end
route = Route.new(app, conditions, defaults, name)
@routes << route
@recognition_key_analyzer << route.conditions
@named_routes[route.name] = route if route.name
@generation_route_keys << route.generation_keys
expire!
route
end