code: private boolean pruneKeys(List<Set<ChainedProperty<S>>> keys, ChainedProperty<S> property) {
          boolean result = false;
  
          for (Set<ChainedProperty<S>> key : keys) {
              key.remove(property);
              if (key.size() == 0) {
                  result = true;
                  continue;
              }
          }
  
          return result;
      }
docs: Removes the given property from all keys, returning true if any key has
  zero properties as a result.