input: Write a function to implement a fuzzy search algorithm in Python that can match strings with near similarities. The function should take a query string, a list of choices, and a threshold value as input. It should return a list of choices that have a Levenshtein distance less than or equal to the threshold from the query string.
  assert find_matches("apple", ["apple", "banana", "aple", "appel", "grape"], 2)==["apple", "aple", "appel"]
  assert find_matches("cat", ["cat", "bat", "mat", "cap"], 1)==["cat", "cap"]
  assert find_matches("dog", ["dog", "fog", "log", "dot"], 0)==["dog"]
  assert find_matches("book", ["book", "boot", "look", "hook"], 2)==["book", "boot", "look"]
  assert find_matches("tree", ["tree", "three", "free", "trie"], 3)==["tree", "three"]
output: def find_matches(query, choices, threshold):
      from Levenshtein import distance
      return [choice for choice in choices if distance(query, choice) <= threshold]