code: def _finish_filter(self, lst, key, include_self, exclusive, biggest_first):
          key = self._actual_key(key)
          locations = [x[0] for x in lst]
          if not include_self and key in locations:
              lst.pop(locations.index(key))
          lst.sort(key=lambda x: x[1], reverse=biggest_first)
          lst = [x for x, y in lst]
          if key == 'RoW' and 'RoW' not in self and exclusive:
              return ['RoW'] if 'RoW' in lst else []
          elif exclusive:
              removed, remaining = set(), []
              while lst:
                  current = lst.pop(0)
                  faces = self[current]
                  if not faces.intersection(removed):
                      removed.update(faces)
                      remaining.append(current)
              lst = remaining
          if 'RoW' not in self and 'RoW' in lst:
              lst[-1 if biggest_first else 0] = lst.pop(lst.index('RoW'))
          return lst