input: Write a function to generate a list of suggestions based on a given prefix from a provided dictionary. If the list contains words that start with the prefix, add them to the list and return the list. If the dictionary or prefix is empty, the function should return an empty list.
  
  
  def auto_complete(dictionary, prefix):
      # list for words with the given prefix
      prefix_words = []
  
      # iterate through the dictionary
      for word in dictionary:
          # if the word starts with given prefix, 
          # add it to the list
          if word.startswith(prefix):
              prefix_words.append(word)
  
      return prefix_words
  
  assert auto_complete(["dog", "deer", "deal", "dungeon", "dark", "dusk"], "d") == ['dog', 'deer', 'deal', 'dungeon', 'dark', 'dusk']
  assert auto_complete(["cat", "car", "camel"], "d") == []
  assert auto_complete([], "d") == []
  assert auto_complete(["dog", "deer", "deal", "dungeon", "dark", "dusk"], "") == []
  assert auto_complete(["dog", "deer", "deal", "dungeon", "dark", "dusk"], "de") == ['deer', 'deal']
  
output: def auto_complete(dictionary, prefix):
      prefix_words = []
      for word in dictionary:
          if word.startswith(prefix):
              prefix_words.append(word)
      return prefix_words