The result is correctly. It is better to assign a kind of object a unique name.
In your test -
Nickname["red"] = Sprite object, Nickname["blue"] = Sprite object -> nickname is a string name of an object type, not an instance.
Then create by nickname "red" or "blue" will create sprite object - it works fine.
Another case, pick "red" object will pick sprite object, it works fine, too.
If you want to identify instance created by "red" or "blue", try add private value to store "red"/"blue" after created.