<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_merged_params(self, supplied_params=None):
 """ Merge this endpoint's default parameters with the supplied parameters :param dict supplied_params: A dictionary of query parameter, value pairs :return: A dictionary of this endpoint's default parameters, merged with the supplied parameters. Any default parameters which have a value supplied are overridden. :rtype: dict :raises apiron.exceptions.UnfulfilledParameterException: When a required parameter for this endpoint is not a default param and is not supplied by the caller """

        supplied_params = supplied_params or {}

        empty_params = {
            param: supplied_params[param] for param in supplied_params if supplied_params[param] in (None, "")
        }
        if empty_params:
            warnings.warn(
                "The {path} endpoint "
                "was called with empty parameters: {empty_params}".format(path=self.path, empty_params=empty_params),
                RuntimeWarning,
                stacklevel=5,
            )

        unfulfilled_params = {
            param for param in self.required_params if param not in supplied_params and param not in self.default_params
        }

        if unfulfilled_params:
            raise UnfulfilledParameterException(self.path, unfulfilled_params)

        merged_params = self.default_params.copy()
        merged_params.update(supplied_params)
        return merged_params