Match a path and return ``None`` if no matching, otherwise
        a dictionary of matched variables with values. If there is more
        to be match in the path, the remaining string is placed in the
        ``__remaining__`` key of the dictionary.

def match(self, path):
        '''Match a path and return ``None`` if no matching, otherwise
        a dictionary of matched variables with values. If there is more
        to be match in the path, the remaining string is placed in the
        ``__remaining__`` key of the dictionary.'''
        match = self._regex.search(path)
        if match is not None:
            remaining = path[match.end():]
            groups = match.groupdict()
            result = {}
            for name, value in groups.items():
                try:
                    value = self._converters[name].to_python(value)
                except Http404:
                    return
                result[str(name)] = value
            if remaining:
                result['__remaining__'] = remaining
            return result