What does "deal with collisions" mean in the context of BIP32 fingerprints? As I could read on BIP 32, we can generate HD Wallets using all the rules defined by Pieter Wuille, but I came across a sentence that was written in the document and I could not fully understand. 


  Note that the fingerprint of the parent only serves as a fast way to detect parent and child nodes in software, and software must be willing to deal with collisions. Internally, the full 160-bit identifier could be used.


What does it mean deal with collisions?
The fingerprint could be used as a unique identifier for a key (it is based on the longer hash160 of the key which is frequently used as a unique identifier). However because it is only 4 bytes long, it is not hard to find two different xpubs which have the same fingerprint. We would say that the fingerprint for these two xpubs collide with each other. 

Note that these two xpubs would have different hash160s, just that the first 4 bytes of that hash (which is the fingerprint), are the same.

So any software that is handling multiple xpubs needs to be aware that there could be collisions in the fingerprint and implement ways to handle them.