'Checks to see if we match the Message object. Returns
(consumer, kwargs dict) if it matches, None otherwise'

def match(self, message):

    if (message.channel.name not in self.channels):
        return None
    call_args = {}
    for (name, value) in self.filters.items():
        if (name not in message):
            return None
        match = value.match(Router.normalise_re_arg(message[name]))
        if match:
            call_args.update(match.groupdict())
        else:
            return None
    return (self.consumer, call_args)
