<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def retrieve_response(self, correlation_id):
 		""" 		Retrieve a registered RPC response. If the correlation_id was not registered, an KeyError will the raised. If not value has been 		received yet, None will be returned. After retrieving the response, the value will be unset internally. 		The returned value will include the entire RabbitMQ message, consisting of a dict with the following keys: 			method_frame: dict 				Information about the message 			header_frame: dict 				Headers of the message 			body: string 				Body of the message 		Parameters 		correlation_id: string 			Identifier to retrieve the RPC response for 		"""

		if correlation_id not in self.responses:
			raise KeyError("Given RPC response correlation_id was not registered.")
		if not self.responses[correlation_id]:
			return None

		response = self.responses[correlation_id]
		del(self.responses[correlation_id])
		return response