WordPress Search matching hyphenated words

It is possible to filter search terms before they are submitted to the actual query using the query_vars hook. So in your case you would do something like this:

add_filter ('query_vars', 'wpse307005_filter_search', 10, 1);
function wpse307005_filter_search ($args) {
  preg_replace ('Spiderman','Spider-Man',$args[s]);
  preg_replace ('Spider man','Spider-Man',$args[s]);
  return $args;
  }

Where $args[s] holds the search string.