def METHOD_NAME(dictionary):
  if not dictionary:
    return dictionary
  new_dict = {}
  for k in dictionary:
    new_key = smart_str(k)
    if isinstance(dictionary[k], string_types):
      # Strings should not be unicode.
      new_dict[new_key] = smart_str(dictionary[k])
    elif isinstance(dictionary[k], dict):
      # Recursively force dicts to strings.
      new_dict[new_key] = METHOD_NAME(dictionary[k])
    elif isinstance(dictionary[k], list):
      new_dict[new_key] = force_list_to_strings(dictionary[k])
    else:
      # Normal objects, or other literals, should not be converted.
      new_dict[new_key] = dictionary[k]
  return new_dict