de-dupe using a deep equality function to prevent different key orderings from affecting the de-dupe
Merge branch 'master' into npm