title: How to return Single.error() when one of sources in Single.zip fails?
body: <p>I have two sources of Singles, which I combine into one Single of Pair.</p>
  
  <p>Let's say we have two methods for these sources:</p>
  
  <pre><code>private Single&lt;String&gt; single1() {} 
  private Single&lt;String&gt; single2() {}
  </code></pre>
  
  <p>Now I combine them into <code>Single&lt;Pair&lt;String, String&gt;</code></p>
  
  <pre><code>private Single&lt;Pair&lt;String, String&gt; combineSingles() {
      Single.zip(single1(), single2(), BiFunction&lt;String, String, Pair&lt;String, String&gt;&gt;) (t1, t2) -&gt; new Pair(t1, t2))
  }
  </code></pre>
  
  <p>When one of the methods (single1 or single2) returns Single.error(), I get <code>UndeliverableException</code> cause error isn't handled in zip operator. I want instead to return <code>Single.error()</code> from <code>combineSingles()</code> method, how can I achieve that?</p>