<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register_response(self, correlation_id=None):
 		""" 		Register the receiving of a RPC response. Will return the given correlation_id after registering, or if correlation_id is None, will 		generate a correlation_id and return it after registering. If the given correlation_id has already been used, an KeyError will be 		raised. 		UUID version 1 will be used when generating correlation_ids. Depending on the underlying system and implementation, this will guarantee 		that generated values are unique between workers. At least CPython guarantees this behaviour. 		Parameters 		correlation_id: string 			Identifier under which to expect a RPC callback. If None, a correlation_id will be generated. 		"""

		if not correlation_id:
			correlation_id = str(uuid.uuid1())

		if correlation_id in self.responses:
			raise KeyError("Correlation_id {0} was already registered, and therefor not unique.".format(correlation_id))

		self.responses[correlation_id] = None
		return correlation_id