code: def fts_match(self, features, segment):
          
          features = set(features)
          if self.seg_known(segment):
              return features <= self.fts(segment)
          else:
              return None
docs: Answer question "are `ft_mask`'s features a subset of ft_seg?"
  
          This is like `FeatureTable.match` except that it checks whether a
          segment is valid and returns None if it is not.
  
          Args:
              features (set): pattern defined as set of (value, feature) tuples
              segment (set): segment defined as a set of (value, feature) tuples
  
          Returns:
              bool: True iff all features in `ft_mask` are also in `ft_seg`; None
                    if segment is not valid