private static boolean hasConflicts(FunctionPair entry,
			MultiValuedMap<FunctionNode, FunctionPair> sourceFormatted,
			MultiValuedMap<FunctionNode, FunctionPair> destFormatted) {
		Collection<FunctionPair> sources = sourceFormatted.get(entry.getSourceNode());
		if (sources != null && sources.size() > 1) {
			return true;
		}
		Collection<FunctionPair> dests = destFormatted.get(entry.getDestNode());
		if (dests != null && dests.size() > 1) {
			return true;
		}
		return false;
	}
Choose seed FunctionNode pairs with the highest confidence from among {@link #discoveredMatches}
making sure there are no conflicts, (a FunctionNode that is involved in multiple matches).
Selection happens in rounds.  During a round:
  a) "Accept" all pairs for which there is no immediate conflict
  b) If a pair has conflicts, throw it out if either:
         1) The number of children is different between source and dest (difference > threshold) 
         2) The function length is different between source and dest (difference > threshold)
         
Between rounds the "accepted" pairs and the "thrown out" pairs may remove conflicts from the
remaining pairs.  Each round the threshold for throwing out a conflict is tightened.

The process terminates when no new pairs are accepted during a round.
The accepted pairs are sorted by confidence, and those exceeding {@link #confThreshold} become
the final seed set.
@param monitor is the TaskMonitor
@throws CancelledException if the user cancels the correlation
Ghidra/Features/VersionTrackingBSim/src/main/java/ghidra/feature/vt/api/BSimProgramCorrelatorMatching.java