code: def intersects(self, key, include_self=False, exclusive=False, biggest_first=True, only=None):
          possibles = self.topology if only is None else {k: self[k] for k in only}
          if key == 'RoW' and 'RoW' not in self:
              return ['RoW'] if 'RoW' in possibles else []
          faces = self[key]
          lst = [
              (k, (len(v.intersection(faces)), len(v)))
              for k, v in possibles.items()
              if (faces.intersection(v))
          ]
          return self._finish_filter(lst, key, include_self, exclusive, biggest_first)