:meth:`.WMessengerOnionSessionProto.process` method implementation.

def process(self, envelope):
		""" :meth:`.WMessengerOnionSessionProto.process` method implementation.
		"""

		def process_single_layer(iter_envelope, iter_obj):
			layer = self.onion().layer(iter_obj.layer_name())
			layer_args = iter_obj.layer_args()
			return layer.process(iter_envelope, self, **layer_args)

		iterator = self.session_flow().iterator(envelope)
		if iterator is not None:
			while iterator is not None:
				envelope = process_single_layer(envelope, iterator)
				iterator = iterator.next(envelope)
		return envelope