docs: public void terminated(Pipe pipe)
      {
          //  Remove the pipe from the list; adjust number of matching, active and/or
          //  eligible pipes accordingly.
          if (pipes.indexOf(pipe) < matching) {
              Collections.swap(pipes, pipes.indexOf(pipe), matching - 1);
              matching--;
          }
          if (pipes.indexOf(pipe) < active) {
              Collections.swap(pipes, pipes.indexOf(pipe), active - 1);
              active--;
          }
          if (pipes.indexOf(pipe) < eligible) {
              Collections.swap(pipes, pipes.indexOf(pipe), eligible - 1);
              eligible--;
          }
          pipes.remove(pipe);
      }