Hi Brent,

if an associate is referenced more than once in an object graph, this block makes sure GraphDiff re-uses the first instance of this associate it encounters instead of creating multiple instances, which may result in an InvalidOperationException "An object with the same key already exists in the ObjectStateManager". 

I've included a unit test for this scenario in the PR, just comment the block out and run the tests to see this effect.