code: def search_nn(self, point, dist=None):
          
  
          return next(iter(self.search_knn(point, 1, dist)), None)
docs: Search the nearest node of the given point
  
          point must be an actual point, not a node. The nearest node to the
          point is returned. If a location of an actual node is used, the Node
          with this location will be returned (not its neighbor).
  
          dist is a distance function, expecting two points and returning a
          distance value. Distance values can be any comparable type.
  
          The result is a (node, distance) tuple.