def METHOD_NAME(self, pattern, observed_data_sdos, verbose=False, stix_version='2.0'):
    compiled_pattern = Pattern(pattern, stix_version=stix_version)
    matcher = MatchListener(observed_data_sdos, verbose, stix_version=stix_version)
    compiled_pattern.walk(matcher)
    found_bindings = matcher.matched()
    if found_bindings:
        matching_sdos = []
        for binding in found_bindings:
            matches = [METHOD_NAME for METHOD_NAME in matcher.get_sdos_from_binding(binding) if METHOD_NAME not in matching_sdos]
            matching_sdos.extend(matches)
    else:
        matching_sdos = []
    return matching_sdos