fixing bug / adding test case #504

hashCode impl -> key.hashCode XOR value.hashCode
if key.equals(value) then hashCode == 0
so empty map has same hashcode as map where key.equals(value)