input: Write a python function to list all paths in a nested dictionary structure.
  assert list_paths({"a": {"b": {}, "c": {}}}) == [['a', 'b'], ['a', 'c']]
  assert list_paths({"root": {"left": {"left_leaf": {}}, "right": {"right_leaf": {}}}}) == [['root', 'left', 'left_leaf'], ['root', 'right', 'right_leaf']]
  assert list_paths({"start": {"middle": {"end": {}}}}) == [['start', 'middle', 'end']]
output: def list_paths(d):
      def recursive_paths(d, current_path):
          if not d:
              return [current_path]
          paths = []
          for k, v in d.items():
              paths.extend(recursive_paths(v, current_path + [k]))
          return paths
      
      return recursive_paths(d, [])