Since `EdgeDirection.Both` is the only difference from `Pregel.apply`, why not make it an argument in `apply`? That would avoid duplication.