code: public <VV> EntryStream<K, VV> mapToValuePartial(BiFunction<? super K, ? super V, ? extends Optional<? extends VV>> valueMapper) {
          return new EntryStream<>(stream().map(
                  e -> {
                      VV mapping = valueMapper.apply(e.getKey(), e.getValue()).orElse(null);
                      return mapping != null ? new SimpleImmutableEntry<>(e.getKey(), mapping) : null;
                  }
          ).filter(Objects::nonNull), context);
      }
docs: Performs a mapping of the stream content to a partial function
  removing the entries to which the function is not applicable.
  
  <p>
  If the mapping function returns an optional containing a new value,
  or {@link Optional#empty()} if function is not applicable to the entry.
  For successfully mapped values the keys are left intact. The mapping function
  may not return null.
  
  <p>
  This is an <a href="package-summary.html#StreamOps">intermediate
  operation</a>.
  
  <p>
  The {@code mapToValuePartial()} operation has the effect of applying a
  one-to-zero-or-one transformation to the elements of the stream, and then
  flattening the resulting elements into a new stream.
  
  @param <VV>        The type of new values
  @param valueMapper a <a
  href="package-summary.html#NonInterference">non-interfering </a>,
  <a href="package-summary.html#Statelessness">stateless</a>
  partial function to apply to original keys and values which returns a present optional
  if it's applicable, or an empty optional otherwise
  @return the new stream
  @since 0.6.8