I believe this is a long shot, but consider the following:
public function options(array $options = ['route' => '', 'placeholder' => '']) {}
Could I invoke this method such as:
options(['route' => 'search'])
And maintain placeholder as 'placeholder' => ''
Is there anything that could merge the original $options array with the new one?