def select(self, *command_tokens, **command_env):
		""" Select suitable command, that matches the given tokens. Each new command to check is fetched with
		this object iterator (:meth:`.WCommandSelector.__iter__`)

		:param command_tokens: command
		:param command_env: command environment
		:return: WCommandProto
		"""
		for command_obj in self:
			if command_obj.match(*command_tokens, **command_env):
				return command_obj