How can you recursively query across 2 columns?
It isn't exactly clear what the group_id represents but for the traversing of the points this can be handled with a recursive query like so:
WITH RECURSIVE movement(id, person, place, end_point, level) as
(
 select id,person, start_point, end_point, 1
 from test
 union
 select p.id, c.person, c.end_point, c.end_point
  , case when p.id=c.id then p.level else p.level + 1 end
 from test c 
 inner join movement p on (c.start_point=p.end_point or c.start_point=p.place)
 and c.person=p.person
), movementSum as
(
  select id,person,place,level
  from movement m
  where m.id = (select min(id) from movement t where t.person=m.person and m.place = t.place)   
)

select *
from movementSum ms
order by id, place, level

Once you share more about group_id perhaps the exact sql can be produced.
Use this sql fiddle to decide what group_id should represent: http://sqlfiddle.com/#!17/cc042/2