def match(self, a, b):
        if not isinstance(a, UniqueIdentity):
            raise ValueError("<a> is not an instance of UniqueIdentity")
        if not isinstance(b, UniqueIdentity):
            raise ValueError("<b> is not an instance of UniqueIdentity")
        if a.uuid and b.uuid and a.uuid == b.uuid:
            return True
        filtered_a = self.filter(a)
        filtered_b = self.filter(b)
        for fa in filtered_a:
            for fb in filtered_b:
                if self.match_filtered_identities(fa, fb):
                    return True
        return False