Before solving a matching problem:
Verify the graph is bipartite (-coloring check).
Identify groups and .
Build adjacency list for .
Implement Kuhn's DFS with visited array.
Loop through , count matches.
Common extensions: Check Hall's condition for perfect matching, construct minimum vertex cover via König's theorem, compute maximum independent set as complement.