Generate a python program that has the following intention:

The intention of the program is to find the shortest path between a specified start node and a destination node in a weighted graph, using a Fibonacci heap data structure. The Fibonacci heap is implemented using a list with tuples containing the node and the distance from the start node. The program uses the following functions:

shortest_path_length(line_length, start, destination): This function takes a dictionary line_length representing the weighted graph, where keys are node pairs and values are the corresponding edge weights. It also takes two nodes, start and destination, and finds the shortest path from the start node to the destination node. The function returns the shortest path length or float('inf') if no path is found.
get(unknown_points, target_node): This function retrieves the distance from the start node to the target_node from the unknown_points Fibonacci heap.
insert_or_update(node_pile, target_node): This function inserts or updates the target_node in the node_pile Fibonacci heap, maintaining the heap's sorted property.
The program uses a depth-first search (DFS) algorithm with a Fibonacci heap to keep track of the shortest distances from the start node to all visited nodes. The main loop continues until the destination node is reached, and the shortest path length is returned. If the destination node is not reached, float('inf') is returned, indicating that no path was found.