'Parameters:
* ``pattern``: Regular expression to be matched.  Any groups
in the regex will be passed in to the handler\'s get/post/etc
methods as arguments.
* ``handler``: `RequestHandler` subclass to be invoked.
* ``kwargs`` (optional): A dictionary of additional arguments
to be passed to the handler\'s constructor.
* ``name`` (optional): A name for this handler.  Used by
`Application.reverse_url`.'

def __init__(self, pattern, handler, kwargs=None, name=None):

    if (not pattern.endswith('$')):
        pattern += '$'
    self.regex = re.compile(pattern)
    assert (len(self.regex.groupindex) in (0, self.regex.groups)), ('groups    in    url    regexes    must    either    be    all    named    or    all    positional:    %r' % self.regex.pattern)
    if isinstance(handler, str):
        handler = import_object(handler)
    self.handler_class = handler
    self.kwargs = (kwargs or {})
    self.name = name
    (self._path, self._group_count) = self._find_groups()
