'Return if ``url``/``options`` are matched by rules defined by
``general_re``, ``rules_with_domains`` and ``rules_with_options``.
``general_re`` is a compiled regex for rules without options.
``rules_with_domains`` is a {domain: [rules]} mapping - per-domain
index of applicable rules which have \'domain\' option.
``rules_with_options`` is a list of AdblockRule instances that
don\'t have \'domain\' option, but have other options.'

def _matches(self, url, options, general_re, rules_with_domains, rules_with_options):

    if (general_re and general_re.search(url)):
        return True
    rules = []
    if (('domain' in options) and rules_with_domains):
        src_domain = options['domain']
        for domain in _domain_variants(src_domain):
            if (domain in rules_with_domains):
                rules = rules_with_domains[domain]
                break
    rules.extend(rules_with_options)
    if self.skip_unsupported_rules:
        rules = [rule for rule in rules if rule.matching_supported(options)]
    return any((rule.match_url(url, options) for rule in rules))
