A fully dynamic algorithm for distributed shortest paths