docs: public boolean handleBack() {
          List<RouterTransaction> childTransactions = new ArrayList<>();
  
          for (ControllerHostedRouter childRouter : childRouters) {
              childTransactions.addAll(childRouter.getBackstack());
          }
  
          Collections.sort(childTransactions, new Comparator<RouterTransaction>() {
              @Override
              public int compare(RouterTransaction o1, RouterTransaction o2) {
                  return o2.transactionIndex - o1.transactionIndex;
              }
          });
  
          for (RouterTransaction transaction : childTransactions) {
              Controller childController = transaction.controller;
  
              if (childController.isAttached() && childController.getRouter().handleBack()) {
                  return true;
              }
          }
  
          return false;
      }