docs: protected void deselectSegment(Segment segment) {
      if(segment.isUnpaired()) {
        ArrayList<Segment> remove = new ArrayList<>();
        // remove all object segments associated with unpaired segment from
        // selection list
        for(Entry<Segment, Segment> entry : indirectSelections.entrySet()) {
          if(entry.getValue() == segment) {
            remove.add(entry.getKey());
          }
        }
  
        for(Segment other : remove) {
          indirectSelections.remove(other);
          deselectSegment(other);
        }
      }
      else {
        // check if deselected object Segment has a unpaired segment highlighted
        Segment unpaired = indirectSelections.get(segment);
        if(unpaired != null) {
          // remove highlight
          deselectSegment(unpaired);
        }
        if(selectedSegments.remove(segment) && segment.getDBIDs() != null) {
          unselectedObjects.addDBIDs(segment.getDBIDs());
        }
      }
    }