def METHOD_NAME(self, obj, search_dirs, file_name=None):
    """
    Return the path to a template associated with the given object.
    """
    if file_name is None:
        # TODO: should we define a make_file_name() method?
        template_name = self.make_template_name(obj)
        file_name = self.make_file_name(template_name)
    dir_path = self.get_object_directory(obj)
    if dir_path is not None:
        search_dirs = [dir_path] + search_dirs
    path = self._find_path_required(search_dirs, file_name)
    return path