def connections(*roles)
      if roles.empty?
        @connections
      else
        @connections.select { |c| c.roles.empty? or !(c.roles & roles).empty? }
      end
    end
def connections(*roles)
      if roles.empty?
        @connections
      else
        @connections.select { |c| c.roles.empty? or !(c.roles & roles).empty? }
      end
    end
return all connections, or those matching list of roles;
 connections with no roles match all, or find intersection with roles list