def check(self, cfn, properties, value_specs, property_specs, path):
    'Check itself'
    matches = list()
    for (p_value, p_path) in properties.items_safe(path[:]):
        for prop in p_value:
            if (prop in value_specs):
                value = value_specs.get(prop).get('Value', {})
                if value:
                    value_type = value.get('ValueType', '')
                    property_type = property_specs.get('Properties').get(prop).get('Type')
                    matches.extend(cfn.check_value(p_value, prop, p_path, check_value=self.check_value, value_specs=RESOURCE_SPECS.get(cfn.regions[0]).get('ValueTypes').get(value_type, {}), cfn=cfn, property_type=property_type, property_name=prop))
    return matches
Check itself
def check(self, cfn, properties, value_specs, property_specs, path):
    
    matches = list()
    for (p_value, p_path) in properties.items_safe(path[:]):
        for prop in p_value:
            if (prop in value_specs):
                value = value_specs.get(prop).get('Value', {})
                if value:
                    value_type = value.get('ValueType', )
                    property_type = property_specs.get('Properties').get(prop).get('Type')
                    matches.extend(cfn.check_value(p_value, prop, p_path, check_value=self.check_value, value_specs=RESOURCE_SPECS.get(cfn.regions[0]).get('ValueTypes').get(value_type, {}), cfn=cfn, property_type=property_type, property_name=prop))
    return matches