private List<VTAssociation> findUniqueAssociations(
			Collection<VTAssociation> relatedAssociations, TaskMonitor monitor)
			throws CancelledException {


		// create function to operand map maps for each source and destination function
		// in the given related associations (src/dst function pairs)
		Map<Function, Map<Long, Map<Integer, Object>>> sourceFunctionsMap =
			createFunctionsMap(relatedAssociations, true, monitor);

		Map<Function, Map<Long, Map<Integer, Object>>> destFunctionsMap =
			createFunctionsMap(relatedAssociations, false, monitor);


		// only functions with scalar or address operands are mapped so the lists could be
		// empty if there are functions with no operand info to be mapped
		if (sourceFunctionsMap.isEmpty() || destFunctionsMap.isEmpty()) {
			return null;
		}

		List<VTAssociation> uniqueAssociations = findUniqueAssociationsUsingMaps(sourceFunctionsMap,
			destFunctionsMap, monitor);

		return uniqueAssociations;
	}
From the given related association, ie a group of src/dest pairs of functions with identical
 instructions, use operand information to find any unique matches in the set. 
@param relatedAssociations group of src/dest pairs of functions with identical instructions
@param monitor the task monitor
@return a list of src/destination associations that are uniquely matched based on matching
 operands
@throws CancelledException if cancelled
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/actions/AutoVersionTrackingTask.java