code: def match_pattern(self, pat, word):
          
          segs = self.word_fts(word)
          if len(pat) != len(segs):
              return None
          else:
              if all([set(p) <= s for (p, s) in zip(pat, segs)]):
                  return segs
docs: Implements fixed-width pattern matching.
  
          Matches just in case pattern is the same length (in segments) as the
          word and each of the segments in the pattern is a featural subset of the
          corresponding segment in the word. Matches return the corresponding list
          of feature sets; failed matches return None.
  
          Args:
             pat (list): pattern consisting of a sequence of sets of (value,
                         feature) tuples
             word (unicode): a Unicode IPA string consisting of zero or more
                            segments
  
          Returns:
              list: corresponding list of feature sets or, if there is no match,
                    None