How do I switch node templates based on arbitrary critera
Indeed, in D7 the template suggestions are an array of suggestions, in the order of importance. You've got 99% of it, but your dashes need to be underscores. Try:

function THEME_preprocess_page() {
  $vars['theme_hook_suggestions'][] = 'page__whatever';
}

function THEME_preprocess_node() {
  $vars['theme_hook_suggestions'][] = 'node__whatever';
}


Why underscores instead of hyphens? From the Drupal API docs:

  // Hyphens (-) and underscores (_) play a special role in theme suggestions.
  // Theme suggestions should only contain underscores, because within
  // drupal_find_theme_templates(), underscores are converted to hyphens to
  // match template file names, and then converted back to underscores to match
  // pre-processing and other function names. So if your theme suggestion
  // contains a hyphen, it will end up as an underscore after this conversion,
  // and your function names won't be recognized.