def initialize(options = {}, &block)
@parameters_key = options.delete(:parameters_key) || 'rack.routing_args'
@parameters_key.freeze
@named_routes = {}
@recognition_key_analyzer = Analysis::Splitting.new
@generation_keys = [:controller, :action]
@generation_route_keys = []
@request_class = options.delete(:request_class) || Rack::Request
@valid_conditions = @request_class.public_instance_methods.map! { |m| m.to_sym }
extend CodeGeneration unless options[:_optimize] == false
@optimized_recognize_defined = false
@routes = []
expire!
if block_given?
yield self
rehash
end
end