class ActionDispatch::Routing::Mapper::Mapping

def normalize_options!

def normalize_options!
  @options.reverse_merge!(scope[:options]) if scope[:options]
  path_without_format = path.sub(/\(\.:format\)$/, '')
  # Add a constraint for wildcard route to make it non-greedy and match the
  # optional format part of the route by default
  if path_without_format.match(WILDCARD_PATH) && @options[:format] != false
    @options[$1.to_sym] ||= /.+?/
  end
  if path_without_format.match(':controller')
    raise ArgumentError, ":controller segment is not allowed within a namespace block" if scope[:module]
    # Add a default constraint for :controller path segments that matches namespaced
    # controllers with default routes like :controller/:action/:id(.:format), e.g:
    # GET /admin/products/show/1
    # => { controller: 'admin/products', action: 'show', id: '1' }
    @options[:controller] ||= /.+?/
  end
  @options.merge!(default_controller_and_action)
end