If I understand correctly, GraphOptim exists as a home for all graph algorithms that require a MILP tool like JuMP. In which case: - [ ] the maximum/minimum perfect match functions based on the Blossom algorithm should probably stay here - [ ] the maximum/minimum weight match (not perfect) that use the Hungarian algorithm and require JuMP should probably moved to GraphOptim - [ ] the `MatchingResult` return type should be synchronized between the two libraries Also need to be consistent with `GraphOptim.min_cost_assignment` and `BipartiteMatching.jl`