code: def route(self, uri, *args, **kwargs):
          
          if len(args) == 0 and callable(uri):
              raise RuntimeError("Cannot use the @route decorator without "
                                 "arguments.")
          kwargs.setdefault('methods', frozenset({'GET'}))
          kwargs.setdefault('host', None)
          kwargs.setdefault('strict_slashes', False)
          kwargs.setdefault('stream', False)
          kwargs.setdefault('name', None)
          kwargs['with_context'] = True  # This is the whole point of this plugin
          plugin = self.plugin
          reg = self.reg
  
          def wrapper(handler_f):
              nonlocal plugin, reg
              nonlocal uri, args, kwargs
              return plugin._add_new_route(reg, uri, handler_f, *args, **kwargs)
          return wrapper
docs: Create a plugin route from a decorated function.
          :param uri: endpoint at which the route will be accessible.
          :type uri: str
          :param args: captures all of the positional arguments passed in
          :type args: tuple(Any)
          :param kwargs: captures the keyword arguments passed in
          :type kwargs: dict(Any)
          :return: The exception function to use as the decorator
          :rtype: fn