code: def match_level(self, overlay):
          
          slice_width = len(self._pattern_spec)
          if slice_width > len(overlay): return None
  
          # Check all the possible slices and return the best matching one
          best_lvl, match_slice = (0, None)
          for i in range(len(overlay)-slice_width+1):
              overlay_slice = overlay.values()[i:i+slice_width]
              lvl = self._slice_match_level(overlay_slice)
              if lvl is None: continue
              if lvl > best_lvl:
                  best_lvl = lvl
                  match_slice = (i, i+slice_width)
  
          return (best_lvl, match_slice) if best_lvl != 0 else None
docs: Given an overlay, return the match level and applicable slice
          of the overall overlay. The level an integer if there is a
          match or None if there is no match.
  
          The level integer is the number of matching components. Higher
          values indicate a stronger match.