docs: def matches_entry(self, othermatch, strict=False):
          '''
          Return True if this match object matches another
          match object (e.g., a flow table entry).
  
          NB: from OF 1.0 spec:
          A match occurs "when a flow entry exactly matches
          or is more specific than one" [in a flow_mod command]
          (likely to be self in this case).
          '''
          if strict:
              return self == othermatch
  
          attrs = set(self.__slots__)
          attrs.discard('_wildcards')
          attrs.discard('_nw_src_wildcard')
          attrs.discard('_nw_dst_wildcard')
          matchtest = []
          for a in attrs:
              curr = getattr(self, a)
              other = getattr(othermatch, a)
  
              if a == '_nw_src' or a == '_nw_dst':
                  # FIXME: clean this up
                  wattr = "{}_wildcard".format(a)
                  otherbits = 32 - getattr(othermatch, wattr)
                  othernet = ip_network("{}/{}".format(getattr(othermatch, a), otherbits), strict=False)
                  iswildcarded = curr in othernet
              else:
                  wc = _wildcard_attr_map[a].name
                  iswildcarded = wc in othermatch.wildcards
  
              matchtest.append(iswildcarded or curr == other)
          return all(matchtest)