def find_rule(self, binding_type: str, **args):
        """Finds rule by binding type and args"""
        try:
            rules = self._rules[binding_type]
            return next(rule for rule in rules if rule.suitable(**args))
        except (KeyError, StopIteration):
            return None