Fix bug in recursive diff

The recursive diff would stop if one of the root keys held identical
values. I have fixed the issue and added a test case that showcases it.

Fixes #23