There are many new APIs regarding groups, but below is few of of the most important functions which will get you started:
Network.SetGroupFlags(NetworkGroup group, NetworkGroupFlags flags)
Network.Instantiate(..., Vector3 position, Quaternion rotation, NetworkGroup group, params object[] initialData)
NetworkView.SetViewID(NetworkViewID viewID, NetworkPlayer owner, NetworkGroup group)
// If a client owns a at least one object in a group, it is a member of that group implicitly.
// However you can also explicitly add a client to group using these functions:
Network.AddPlayerToGroup(NetworkPlayer target, NetworkGroup group)
Network.RemovePlayerFromGroup(NetworkPlayer target, NetworkGroup group)
One of the many uses for groups is to separate game sessions so that a single server can handle multiple different game matches/zones but only showing one or more of them to each individual client. You can for example hide a object from other clients, like so:
// choose a group number within the range 1 to 65535.
uLink.NetworkGroup group = 3;
// hide objects, which belong to this group, from non-member clients.
uLink.Network.SetGroupFlags(group, uLink.NetworkGroupFlags.HideGameObjects);
// instantiate the player's object to this group (he/she will be implicitly added to the group).
// you can also use NetworkView.SetViewID(NetworkViewID, NetworkPlayer, NetworkGroup), if you don't want to use Network.Instantiate.
uLink.Network.Instantiate(client, ..., Vector3.zero, Quaternion.identity, group, ...);