The assertion choices["goal_A"] > choices["goal_C"] fails sporadically because goal_A has a very low weight (2 vs 100) and can easily be chosen 0 times just like goal_C (0 vs 100). Changed to >= to handle valid 0 == 0 scenarios.
Also fixes "Failed to forget path" warning where _get_id was used instead of generate_uuid.