docs: public void process( FastQueue<AssociatedIndex> matches , int numSource , int numDestination ) {
  
  		if( checkSource ) {
  			if( checkDestination ) {
  				processSource(matches, numSource, firstPass);
  				processDestination(firstPass,numDestination,pruned);
  			} else {
  				processSource(matches, numSource, pruned);
  			}
  		} else if( checkDestination ) {
  			processDestination(matches,numDestination,pruned);
  		} else {
  			// well this was pointless, just return the input set
  			pruned = matches;
  		}
  	}