code: def match_url(self, url, options=None):
          
          options = options or {}
          for optname in self.options:
              if optname == 'match-case':  # TODO
                  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)
docs: 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.