'Return if this rule matches the URL.
What to do if rule is matched is up to developer. Most likely
``.is_exception`` attribute should be taken in account.'

def match_url(self, url, options=None):

    options = (options or {})
    for optname in self.options:
        if (optname == 'match-case'):
            continue
        if (optname not in options):
            raise ValueError(('Rule    requires    option    %s' % optname))
        if (optname == 'domain'):
            if (not self._domain_matches(options['domain'])):
                return False
            continue
        if (options[optname] != self.options[optname]):
            return False
    return self._url_matches(url)
