'Finds and executes the handler for given request context (handlers are methods decorated with :func:`url` )
:param context: HTTP context
:type  context: :class:`ajenti.http.HttpContext`'

def handle(self, context):

    for (name, method) in self.__class__.__dict__.iteritems():
        if hasattr(method, '_url_pattern'):
            method = getattr(self, name)
            match = method._url_pattern.match(context.path)
            if match:
                context.route_data = match.groupdict()
                data = method(context, **context.route_data)
                if (type(data) is types.GeneratorType):
                    return data
                else:
                    return [data]
