returns true if subset somehow matches this
the semantics are defined by the filtering algorithm, thus it could be a filter or a subset
i.e. subset contains either equivalent elements or null and no
non-matching elements matches(null) always returns true