diff --git a/preprocess/element/pager.preprocess.inc b/preprocess/element/pager.preprocess.inc
index 1ee7485..558784f 100644
--- a/preprocess/element/pager.preprocess.inc
+++ b/preprocess/element/pager.preprocess.inc
@@ -96,9 +96,8 @@ function uswds_preprocess_pager(&$variables) {
     // Create previous link whenever we're not on first page.
     $items['previous'] = [];
     $items['previous']['attributes'] = new Attribute();
-    $options = [
-      'query' => $pager_manager->getUpdatedParameters($parameters, $element, $current_page - 1),
-    ];
+    $options = array_key_exists('#options', $variables['items']) ? $variables['items']['#options'] : [];
+    $options['query'] = $pager_manager->getUpdatedParameters($parameters, $element, $current_page - 1);
     $items['previous']['href'] = Url::fromRoute($route_name, $route_parameters, $options)->toString();
     if (isset($tags[1])) {
       $items['previous']['text'] = $tags[1];
@@ -111,9 +110,8 @@ function uswds_preprocess_pager(&$variables) {
     if ($pager_current > ceil($quantity/2)) {
       $items['first'] = [];
       $items['first']['attributes'] = new Attribute();
-      $options = [
-        'query' => $pager_manager->getUpdatedParameters($parameters, $element, 0),
-      ];
+      $options = array_key_exists('#options', $variables['items']) ? $variables['items']['#options'] : [];
+      $options['query'] = $pager_manager->getUpdatedParameters($parameters, $element, 0);
       $items['first']['href'] = Url::fromRoute($route_name, $route_parameters, $options)->toString();
       if (isset($tags[0])) {
         $items['first']['text'] = $tags[0];
@@ -131,9 +129,8 @@ function uswds_preprocess_pager(&$variables) {
     }
     // Now generate the actual pager piece.
     for (; $i <= $pager_last && $i <= $pager_max; $i++) {
-      $options = [
-        'query' => $pager_manager->getUpdatedParameters($parameters, $element, $i - 1),
-      ];
+      $options = array_key_exists('#options', $variables['items']) ? $variables['items']['#options'] : [];
+      $options['query'] = $pager_manager->getUpdatedParameters($parameters, $element, $i - 1);
       $items['pages'][$i]['href'] = Url::fromRoute($route_name, $route_parameters, $options)->toString();
       $items['pages'][$i]['attributes'] = new Attribute();
       if ($i == $pager_current) {
@@ -154,9 +151,8 @@ function uswds_preprocess_pager(&$variables) {
   if ($pager_current < $pager_max && $pager_max > 3) {
     $items['next'] = [];
     $items['next']['attributes'] = new Attribute();
-    $options = [
-      'query' => $pager_manager->getUpdatedParameters($parameters, $element, $current_page + 1),
-    ];
+    $options = array_key_exists('#options', $variables['items']) ? $variables['items']['#options'] : [];
+    $options['query'] = $pager_manager->getUpdatedParameters($parameters, $element, $current_page + 1);
     $items['next']['href'] = Url::fromRoute($route_name, $route_parameters, $options)->toString();
     if (isset($tags[3])) {
       $items['next']['text'] = $tags[3];
@@ -169,9 +165,8 @@ function uswds_preprocess_pager(&$variables) {
     if ($pager_max - $pager_current > floor($quantity/2)) {
       $items['last'] = [];
       $items['last']['attributes'] = new Attribute();
-      $options = [
-        'query' => $pager_manager->getUpdatedParameters($parameters, $element, $pager_max - 1),
-      ];
+      $options = array_key_exists('#options', $variables['items']) ? $variables['items']['#options'] : [];
+      $options['query'] = $pager_manager->getUpdatedParameters($parameters, $element, $pager_max - 1);
       $items['last']['href'] = Url::fromRoute($route_name, $route_parameters, $options)->toString();
       $items['last']['number'] = $pager_max;
       if (isset($tags[4])) {
