Implement a function to determine whether a given network path between nodes is valid and avoid cycles in the traversal. Use a directed graph represented as an adjacency-list dictionary, a starting node, and a destination node. Return True if the destination is reachable without visiting any node more than once; otherwise return False.
Function signature: def is_valid_path(graph, start, target):
def is_valid_path(graph, start, target):