code: def include(url_prefix_or_module_name: str,
              module_name: Optional[str] = None,
              *,
              attr: str = 'routes',
              exclude: Optional[Endpoints] = None,
              only: Optional[Endpoints] = None,
              ) -> RouteGenerator:
      
      url_prefix = None
      if module_name is None:
          module_name = url_prefix_or_module_name
      else:
          url_prefix = url_prefix_or_module_name
  
      module = importlib.import_module(module_name)
      try:
          routes = getattr(module, attr)()
      except AttributeError:
          raise AttributeError(f'Could not find a variable named `{attr}` '
                               f'in the {module_name} module!')
  
      routes = _reduce_routes(routes, exclude=exclude, only=only)
      if url_prefix:
          yield from prefix(url_prefix, routes)
      else:
          yield from routes
docs: Include the routes from another module at that point in the tree. For example::
  
          # project-root/bundles/primes/routes.py
          routes = lambda: [
              controller('/two', TwoController),
              controller('/three', ThreeController),
              controller('/five', FiveController),
          ]
  
  
          # project-root/bundles/blog/routes.py
          routes = lambda: [
              func('/', index),
              controller('/authors', AuthorController),
              controller('/posts', PostController),
          ]
  
  
          # project-root/your_app_bundle/routes.py
          routes = lambda: [
              include('some_bundle.routes'),
  
              # these last two are equivalent
              include('/blog', 'bundles.blog.routes'),
              prefix('/blog', [
                  include('bundles.blog.routes'),
              ]),
          ]
  
      :param url_prefix_or_module_name: The module name, or a url prefix for all
                                        of the included routes in the module name
                                        passed as the second argument.
      :param module_name: The module name of the routes to include if a url prefix
                          was given as the first argument.
      :param attr: The attribute name in the module, if different from ``routes``.
      :param exclude: An optional list of endpoints to exclude.
      :param only: An optional list of endpoints to only include.