If count of an object in when: is 0, then it should return an object of the same type.

The bug occurs if you pass in an empty dictionary and get an empty array back.

I have some code in my library which passes arrays and dictionaries to when:. I expect to get an object of the same type back, but it sometimes returns the wrong object. I think this is the best way of doing it, but could also create a new object of this type.