In this paper, we propose a re-routing strategy for connected and automated vehicles (CAVs), considering coordination and control of all the CAVs in the network. The objective for each CAV is to find the route that minimizes the total travel time of all CAVs. We coordinate CAVs at signal-free intersections to accurately predict the travel time for the routing problem. While it is possible to find a system-optimal solution by comparing all the possible combinations of the routes, this may impose a computational burden. Thus, we instead find a person-by-person optimal solution to reduce computational time while still deriving a better solution than selfish routing. We validate our framework through simulations in a grid network.