Procurando por um JToken específico por nome em uma hierarquia de JObject

Eu tenho alguma resposta Json do servidor, por exemplo:

{"routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 50.4639653,
           "lng" : 30.6325177
        },
        "southwest" : {
           "lat" : 50.4599625,
           "lng" : 30.6272425
        }
     },
     "copyrights" : "Map data ©2013 Google",
     "legs" : [
        {
           "distance" : {
              "text" : "1.7 km",
              "value" : 1729
           },
           "duration" : {
              "text" : "4 mins",
              "value" : 223
           },

E eu quero pegar o valor do token 'texto' de

      "legs" : [
        {
           "distance" : {
              "text" : "1.7 km",
              "value" : 1729
           },

que é string com valor "1,7 km".

Questão: Existe alguma função embutida no NewtonsoftJson lib que pode ser semelhante a:

public string(or JToken) GetJtokenByName(JObject document, string jtokenName)

ou preciso implementar algum método recursivo que pesquisará o JToken por nome em todos os JTokens e JArrays no JObject?

questionAnswers(3)

yourAnswerToTheQuestion