def METHOD_NAME(self, properties, specs, path, cfn):
    matches = []
    for k, v in specs.items():
        for s in v:
            spec_values = s.get(self.spec_type)
            if spec_values:
                property_set = [k] + spec_values
                scenarios = cfn.get_object_without_conditions(
                    properties, property_names=property_set
                )
                for scenario in scenarios:
                    if self._check_value(scenario.get("Object").get(k), s, cfn):
                        for property_name in spec_values:
                            if self._check_prop(property_name, scenario):
                                if scenario["Scenario"] is None:
                                    message = "When property '{0}' has its current value property '{1}' {2} at {3}"
                                    matches.append(
                                        RuleMatch(
                                            path,
                                            message.format(
                                                k,
                                                property_name,
                                                self.message,
                                                "/".join(map(str, path)),
                                            ),
                                        )
                                    )
                                else:
                                    scenario_text = " and ".join(
                                        [
                                            f'when condition "{k}" is {v}'
                                            for (k, v) in scenario[
                                                "Scenario"
                                            ].items()
                                        ]
                                    )
                                    message = "When property '{0}' has its current value property '{1}' {2} when {3}"
                                    matches.append(
                                        RuleMatch(
                                            path,
                                            message.format(
                                                k,
                                                property_name,
                                                self.message,
                                                scenario_text,
                                            ),
                                        )
                                    )
    return matches