class ActionDispatch::Routing::RouteSet

def self.included(base)

`included` block is run only for the initial inclusion of each copy.
that this method is called for each inclusion, whereas the above
including a new copy of the module (recursively if necessary). Note
singleton and instance methods return the desired route set by
of an ancestor that includes the module), ensure that the `_routes`
If the module is included more than once (for example, in a subclass
def self.included(base)
  super
  if base.respond_to?(:_routes) && !base._routes.equal?(@_proxy._routes)
    @dup_for_reinclude ||= self.dup
    base.include @dup_for_reinclude
  end
end