docs: def url_for(self, endpoint, **items):
          '''Returns a valid XBMC plugin URL for the given endpoint name.
          endpoint can be the literal name of a function, or it can
          correspond to the name keyword arguments passed to the route
          decorator.
  
          Raises AmbiguousUrlException if there is more than one possible
          view for the given endpoint name.
          '''
          try:
              rule = self._view_functions[endpoint]
          except KeyError:
              try:
                  rule = (rule for rule in self._view_functions.values() if rule.view_func == endpoint).next()
              except StopIteration:
                  raise NotFoundException(
                      '%s doesn\'t match any known patterns.' % endpoint)
  
          # rule can be None since values of None are allowed in the
          # _view_functions dict. This signifies more than one view function is
          # tied to the same name.
          if not rule:
              # TODO: Make this a regular exception
              raise AmbiguousUrlException
  
          pathqs = rule.make_path_qs(items)
          return 'plugin://%s%s' % (self._addon_id, pathqs)