def _message_hostgroup_parse(self, message):
		""" Parse given message and return list of group names and socket information. Socket information
		is parsed in :meth:`.WBeaconGouverneurMessenger._message_address_parse` method

		:param message: bytes
		:return: tuple of list of group names and WIPV4SocketInfo
		"""
		splitter_count = message.count(WHostgroupBeaconMessenger.__message_groups_splitter__)
		if splitter_count == 0:
			return [], WBeaconGouverneurMessenger._message_address_parse(self, message)
		elif splitter_count == 1:
			splitter_pos = message.find(WHostgroupBeaconMessenger.__message_groups_splitter__)
			groups = []
			group_splitter = WHostgroupBeaconMessenger.__group_splitter__
			for group_name in message[(splitter_pos + 1):].split(group_splitter):
				groups.append(group_name.strip())
			address = WBeaconGouverneurMessenger._message_address_parse(self, message[:splitter_pos])
			return groups, address
		else:
			raise ValueError('Invalid message. Too many separators')