'Return whether this rule can return meaningful result,
given the `options` dict. If some options are missing,
then rule shouldn\'t be matched against, and this function
returns False.
>>> rule = AdblockRule("swf|")
>>> rule.matching_supported({})
True
>>> rule = AdblockRule("swf|$third-party")
>>> rule.matching_supported({})
False
>>> rule.matching_supported({\'domain\': \'example.com\', \'third-party\': False})
True'

def matching_supported(self, options=None):

    if self.is_comment:
        return False
    if self.is_html_rule:
        return False
    options = (options or {})
    keys = set(options.keys())
    if (not keys.issuperset(self._options_keys)):
        return False
    return True
