docs: function(method) {
  		switch (method) {
  			case 'withinRooms':
  			
  				// If users are not in rooms yet, just re-run function but with 'acrossRooms' method.
  				if(cloak.getLobby().getMembers(true).length == members.length) {
  					randomRooms("acrossRooms");
  				} else {
  					// loop through rooms. In each room run knuth shuffle to randomises the ordering. Give players new names based on new ordering.
  					for(var i in cloak.getRooms(true)) {
  						var room = cloak.getRoom(cloak.getRooms(true)[i].id);
  						var roomMembers = _.pluck(room.getMembers(true), 'id');
  						// Using the knuth shuffle to randomises the ordering of the original array, e.g.: b = ['b','g','a','h','f','i','c','e','d']
  						var b = shuffle(roomMembers.slice(0));
  						for(var j in b) {
  							cloak.getUser(b[j]).name = (Number(j)+1).toString();
  						}
  					}
  				}
  				break;
  				
  			case 'acrossRooms':
  			default:
  				// Using the knuth shuffle to randomises the ordering of the original array, e.g.: b = ['b','g','a','h','f','i','c','e','d']
  		        var b = shuffle(members.slice(0));
  		        // Create multidimensional array with equal number of membersPerRoom. Allocating members to rooms. E.g.: c = [['b','g','a'],['h','f','i'],['c','e','d']]
  		        var c = [];
  		        while(b.length) 
  					c.push(b.splice(0,membersPerRoom)); 
  
  				// Now place each memeber in the his/hers allocated room.
  				for(var i in cloak.getRooms(true)) {
  					var room = cloak.getRoom(cloak.getRooms(true)[i].id);
  					var roomMembers = c[i];
  					for(var j in roomMembers) {
  						console.log(roomMembers[j] + ' in ' + room.name + ' ('+room.getMembers(true).length+'/'+room.size+')');
  						cloak.getUser(roomMembers[j]).joinRoom(room);
  						cloak.getUser(roomMembers[j]).name = (Number(j)+1).toString();
  					}
  				}
  				break;
  			
  		}
  	}