Relay Selection in Multi-Node Cooperative Communications: When to Cooperate and Whom to Cooperate with?