General graph maximum matching algorithm