Private is related to Military. Military is related to Captain. 
Gift can be used for Unexpected. Gift is related to Exchange. Exchange is the opposite of Keep. Retain is a type of Keep. 
Private <--RelatedTo--> Military <--RelatedTo--> Captain 
Unexpected <--UsedFor-- Gift <--RelatedTo--> Exchange <--Antonym--> Keep <--IsA-- Retain 