Dagger + URL dinámica de actualización

PROBLEMA

Necesito llamar a API desde dominios ingresados por USUARIO y necesito editar miRetrofit singleton antes de la llamada de acuerdo con los datos insertados.

¿Hay alguna manera de "restablecer" mi singleton, forzándolo a recrearse?

o

¿Hay alguna manera de actualizar mibaseUrl con mis datos (¿tal vez en Interceptor?) justo antes de la llamada?

CÓDIGO

Singletons

@Provides
@Singleton
Retrofit provideRetrofit(SharedPreferences prefs) {

    String apiUrl = "https://%1s%2s";
    apiUrl = String.format(apiUrl, prefs.getString(ACCOUNT_SUBDOMAIN, null), prefs.getString(ACCOUNT_DOMAIN, null));

    OkHttpClient httpClient = new OkHttpClient.Builder()
            .addInterceptor(new HeaderInterceptor())
            .build();

    return new Retrofit.Builder()
            .baseUrl(apiUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .client(httpClient)
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .build();
}

@Provides
@Singleton
API provideAPI(Retrofit retrofit) {
    return retrofit.create(API.class);
}

API

@FormUrlEncoded
@POST("endpoint")
Observable<Response> logIn(@Field("login") String login, @Field("password") String password);

Como funciona ahora

Bueno, la idea era guardar los datos del dominio del usuario a través deSharedPrefs antes de la llamada API y modificarbaseUrl con cadena formateada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta