public static void WaitUntilEscapeKeyIsHit(this TextWriter outputter, string message = "Press ESCAPE to continue...")
 {
     if (outputter == null)
     {
         throw new ArgumentNullException("outputter");
     }
     do
     {
         if (string.IsNullOrWhiteSpace(message))
         {
             continue;
         }
         outputter.WriteLine(message);
         outputter.WriteLine();
     }while (OutputterExtensions.WaitingForEscape());
 }
 public static void RepeatUntilEscapeKeyIsHit(this TextWriter outputter, Action repeat)
 {
     if (outputter == null)
     {
         throw new ArgumentNullException("outputter");
     }
     if (repeat == null)
     {
         throw new ArgumentNullException("repeat");
     }
     do
     {
         repeat();
         outputter.WriteLine("Press ESCAPE to break or any key to continue");
         outputter.WriteLine();
     }while (OutputterExtensions.WaitingForEscape());
 }